package com.wtgroup.demo.mianshi.其他.lambda;

import org.junit.Test;

/**
 * @author 60906
 * @date 2021/5/17 22:24
 */
public class D {

    @Test
    public void foo1() {
        Runnable runable = new Runnable() {
            @Override
            public void run() {
                System.out.println("xxxxx");
            }
        };
        // 对象
        new Thread(runable).start();
        // runable.run();

        int res = method(new MyIngerface() {
            @Override
            public int run(int d1, int d2) {
                return d1 * d2 - 10;
            }
        });
        System.out.println(res);

        int res1 = method((d1, d2) -> d1 * d2 - 10);
        System.out.println(res1);
    }



    // jdk 7 , 没有 lambda 表达式
    public int method(MyIngerface myIngerface) {
        int d1 = 1;
        int d2 = 2;
        // 需要定制化的计算逻辑, 输入 d1, d2, 输出 d3
        int d3 = myIngerface.run(d1, d2); // 方便扩展 d1 * d2 - 10

        return d1 + d2 + d3;
    }

    // 函数式接口
    @FunctionalInterface
    static interface MyIngerface {
        int run(int d1, int d2);
    }

    static interface XXX {
        void xxx();
    }

}
